package mybox.engine.rundfeder;

import java.util.ArrayList;

import mybox.engine.Figur;
import mybox.engine.File4Qcad;
import mybox.engine.Line;
import mybox.engine.QVector;

public class RundfederKette implements Figur{
      
	    ArrayList<Rundfeder> kette = new ArrayList<Rundfeder>();
	    ArrayList<Line> lines = new ArrayList<Line>();	    //
	    public RundfederKette(
	    		File4Qcad file4qcad, 
	    		QVector start,
	    		int anzahlGlieder, 
	    		double hoehe, 
	    		double seitenAbschluss,
	    		double federDicke, 
	    		int federAnzahl,
	    		double vollGliedLaenge,
	    		double zinkenLaenge
	    		) {
	    	
	    	QVector anschlussPunkt = new QVector(start.x-federDicke,start.y);
	    	for (int kettenIdx=0;kettenIdx<anzahlGlieder;kettenIdx++) {
	    	 Rundfeder rundFeder = new Rundfeder(file4qcad, anschlussPunkt, hoehe,seitenAbschluss,federDicke,federAnzahl);
	    	 kette.add(rundFeder);
					
	    	 Line federObenAbschluss = new Line(file4qcad,
			          new QVector(rundFeder.linksObenStart.x+federDicke,rundFeder.linksObenStart.y),
			          new QVector(rundFeder.rechtsUntenEnd.x,rundFeder.linksObenStart.y)
			       );
	    	 Line zinkeOben1 = new Line(file4qcad,
			          new QVector(rundFeder.rechtsUntenEnd.x,rundFeder.linksObenStart.y),
			          new QVector(rundFeder.rechtsUntenEnd.x,rundFeder.linksObenStart.y+zinkenLaenge)
			       ); 
	    	 Line zinkeOben2 = new Line(file4qcad,
	    			 new QVector(rundFeder.rechtsUntenEnd.x,rundFeder.linksObenStart.y+zinkenLaenge),
			          new QVector(rundFeder.rechtsUntenEnd.x+vollGliedLaenge,rundFeder.linksObenStart.y+zinkenLaenge)
			       ); 
	    	 Line zinkeOben3 = new Line(file4qcad,
			          new QVector(rundFeder.rechtsUntenEnd.x+vollGliedLaenge,rundFeder.linksObenStart.y+zinkenLaenge),
			          new QVector(rundFeder.rechtsUntenEnd.x+vollGliedLaenge,rundFeder.linksObenStart.y)
			       ); 
	    	 
	    	 lines.add(federObenAbschluss);
			 lines.add(zinkeOben1);
			 lines.add(zinkeOben2);
			 lines.add(zinkeOben3);
			 
			 
			 Line federUntenAbschluss =new Line(file4qcad,
		              new QVector(rundFeder.linksObenStart.x+federDicke,rundFeder.linksObenStart.y-hoehe),
		              new QVector(rundFeder.rechtsUntenEnd.x,rundFeder.rechtsUntenEnd.y)); 
			 
			 Line zinkeUnten1 = new Line(file4qcad,
			          new QVector(rundFeder.rechtsUntenEnd.x,rundFeder.linksObenStart.y-hoehe),
			          new QVector(rundFeder.rechtsUntenEnd.x,rundFeder.linksObenStart.y-hoehe-zinkenLaenge)
			       ); 
	    	 Line zinkeUnten2 = new Line(file4qcad,
	    			 new QVector(rundFeder.rechtsUntenEnd.x,rundFeder.linksObenStart.y-hoehe-zinkenLaenge),
			          new QVector(rundFeder.rechtsUntenEnd.x+vollGliedLaenge,rundFeder.linksObenStart.y-hoehe-zinkenLaenge)
			       ); 
	    	 Line zinkeUnten3 = new Line(file4qcad,
			          new QVector(rundFeder.rechtsUntenEnd.x+vollGliedLaenge,rundFeder.linksObenStart.y-hoehe-zinkenLaenge),
			          new QVector(rundFeder.rechtsUntenEnd.x+vollGliedLaenge,rundFeder.linksObenStart.y-hoehe)
			       ); 
					
			 
			 lines.add(federUntenAbschluss);
			 lines.add(zinkeUnten1);
			 lines.add(zinkeUnten2);
			 lines.add(zinkeUnten3);
			anschlussPunkt = new QVector(zinkeOben3.end.x-federDicke,zinkeOben3.end.y);
	    	}
	    	
	    }

		@Override
		public void draw() {
			for (Rundfeder rfeder : kette) 
				rfeder.draw();
			for (Line line : lines) 
				line.draw();						
		}
}
